#ifndef OBJECT_H
#define OBJECT_H

class CSerialize;
struct sgMessage;
#include "ObjectType.h"

class sgObject
{
public:
	sgObject();
	virtual ~sgObject() { }
	virtual void Update( int diff ) { }
    virtual void Render( ) { }
	virtual void Serialize( CSerialize& s );
    void SetID( int id );
    int GetID( );
    int GetClassType( );
    virtual sgObject *Clone( );
    virtual void ProcessMessage( sgMessage *msg );
	static sgObject *Creator( );
    static bool m_creatorRegisted;
protected:
    
	int m_objectID;
    int m_classType;
};

#endif